home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
System Booster
/
System Booster.iso
/
Systemmonitors
/
MemMon
/
MemMonII.mod
< prev
next >
Wrap
Text File
|
1996-09-26
|
7KB
|
227 lines
(*
MemMonII Copyright by Andreas Gunßer, Großheppacherstr. 34,
D-7056 Weinstadt-Endersbach,
West-Germany
History-list:
12-Oct-1990 -- Version 2.0 by Andreas Gunßer
for more information refer to MemMonII.doc
*)
MODULE MemMonII;
FROM SYSTEM IMPORT ADR;
FROM Intuition IMPORT NewWindow,WindowPtr,WindowFlags,WindowFlagSet,
IDCMPFlags,IDCMPFlagSet,ScreenFlagSet,wbenchScreen,
OpenWindow,CloseWindow,IntuiText,PrintIText,SizeWindow,
SetWindowTitles,IntuiMessage,
OpenIntuition,IntuitionBase;
FROM Exec IMPORT GetMsg,ReplyMsg;
FROM Arts IMPORT Assert;
FROM Dos IMPORT Delay;
FROM Conversions IMPORT ValToStr;
FROM Strings IMPORT Insert;
FROM Heap IMPORT Available;
FROM Graphics IMPORT jam1,RastPortPtr,WritePixel,ScrollRaster,SetAPen;
TYPE String = ARRAY [0..100] OF CHAR;
VAR Window : NewWindow;
WindowPter : WindowPtr;
class : IDCMPFlagSet;
IntuiMsg : POINTER TO IntuiMessage;
WindowTitle : String;
lauf : LONGCARD;
IntuiPtr : POINTER TO IntuitionBase;
actWindowPter : WindowPtr;
WindowLarge : BOOLEAN; (* TRUE = large, FALSE = klein*)
gesSpeicher : LONGINT;
(* ---------------------------------------------------------------------------*)
(* -------------------------- Prozeduren -------------------------------------*)
PROCEDURE DumpGraphic (Speicher : LONGINT);
VAR wrPort : RastPortPtr;
dummyint : INTEGER;
speicherx : LONGINT;
BEGIN (* DumpGraphic *)
Speicher := Speicher DIV 2;
wrPort := WindowPter^.rPort;
SetAPen (wrPort,3);
speicherx := (30 - (Speicher DIV 50000));
IF (speicherx < 1) THEN
speicherx := 1;
ELSIF (speicherx > 29) THEN
speicherx := 29;
END (* IF *);
dummyint := WritePixel (wrPort,540,speicherx);
dummyint := WritePixel (wrPort,541,speicherx);
ScrollRaster (wrPort,2,0,175,11,542,29);
END DumpGraphic;
PROCEDURE Credits;
VAR TextZeile1,
TextZeile2,
TextZeile3 : IntuiText;
TextZeile1Txt,
TextZeile2Txt,
TextZeile3Txt : ARRAY [0..50] OF CHAR;
BEGIN (* Credits *)
Delay (5);
TextZeile1Txt := "Memory Monitor";
WITH TextZeile1 DO
frontPen := 3;
backPen := 0;
drawMode := jam1;
leftEdge := 28;
topEdge := 11;
iTextFont := NIL;
iText := ADR (TextZeile1Txt);
nextText := ADR (TextZeile2);
END (* WITH *);
TextZeile2Txt := "programmed by ";
WITH TextZeile2 DO
frontPen := 3;
backPen := 0;
drawMode := jam1;
leftEdge := 28;
topEdge := 20;
iTextFont := NIL;
iText := ADR (TextZeile2Txt);
nextText := ADR (TextZeile3);
END (* WITH *);
TextZeile3Txt := "Andreas Gunßer";
WITH TextZeile3 DO
frontPen := 3;
backPen := 0;
drawMode := jam1;
leftEdge := 28;
topEdge := 30;
iTextFont := NIL;
iText := ADR (TextZeile3Txt);
nextText := NIL;
END (* WITH *);
PrintIText (WindowPter^.rPort,ADR (TextZeile1),0,0);
TextZeile1.frontPen := 2;
TextZeile2.frontPen := 2;
TextZeile3.frontPen := 2;
PrintIText (WindowPter^.rPort,ADR (TextZeile1),1,1);
END Credits;
PROCEDURE CloseDown;
BEGIN
CloseWindow (WindowPter);
END CloseDown;
PROCEDURE DumpMem (WhichWindow : WindowPtr) : LONGINT;
VAR chipav,
fastav,
totalav : LONGINT;
SpeicherString : ARRAY [0..99] OF CHAR;
chipstring,
faststring,
totalstring : ARRAY [0..10] OF CHAR;
dummychar : CHAR;
dummybool : BOOLEAN;
ScreenString : ARRAY [0..79] OF CHAR;
BEGIN (* DumpMem *)
chipav := Available (TRUE);
totalav := Available (FALSE);
fastav := totalav-chipav;
dummychar := " ";
ScreenString := "MemMon © Copyright 15-Aug-1990 by Andreas Gunßer";
ValToStr (chipav,TRUE,chipstring,10,10,dummychar,dummybool);
ValToStr (fastav,TRUE,faststring,10,10,dummychar,dummybool);
ValToStr (totalav,TRUE,totalstring,10,10,dummychar,dummybool);
Insert (SpeicherString,0,"Total =");
Insert (SpeicherString,7,totalstring);
Insert (SpeicherString,18,"Fast =");
Insert (SpeicherString,24,faststring);
Insert (SpeicherString,35,"Chip =");
Insert (SpeicherString,41,chipstring);
SetWindowTitles (WhichWindow,ADR (SpeicherString),ADR (ScreenString));
RETURN (totalav);
END DumpMem;
(* ---------------------------------------------------------------------------*)
(* --------------------------------- MemMon ----------------------------------*)
BEGIN (* MemMon *)
IntuiPtr := OpenIntuition ();
lauf := 1;
WindowLarge := FALSE;
WindowTitle := "MemMon © by Angus";
WITH Window DO
leftEdge := 0;
topEdge := 0;
width := 550;
height := 10;
detailPen := 0;
blockPen := 1;
idcmpFlags := IDCMPFlagSet {closeWindow,menuPick,menuVerify};
flags := WindowFlagSet {windowDrag,windowDepth,windowClose,
activate};
firstGadget := NIL;
checkMark := NIL;
title := ADR (WindowTitle);
bitMap := NIL;
type := ScreenFlagSet {wbenchScreen};
minWidth := 220;
maxWidth := 550;
minHeight := 10;
maxHeight := 40;
END;
WindowPter := OpenWindow (Window);
Assert (WindowPter # NIL, ADR ("Window nicht zu öffnen"));
LOOP
REPEAT
lauf := (lauf +1);
actWindowPter := IntuiPtr^.activeWindow;
IF (lauf > 4000000000) THEN
lauf := 1;
ELSIF ((lauf MOD 25) = 0) THEN
gesSpeicher := DumpMem (WindowPter);
IF (WindowLarge = TRUE) THEN
DumpGraphic (gesSpeicher);
END (* IF *)
END;
Delay (2);
IntuiMsg := GetMsg (WindowPter^.userPort);
WHILE IntuiMsg # NIL DO
class := IntuiMsg^.class;
ReplyMsg (IntuiMsg);
IF (closeWindow IN class) THEN
EXIT;
ELSIF ((menuPick IN class) AND (WindowLarge = FALSE)) THEN
SizeWindow (WindowPter,0,30);
Credits;
WindowLarge := TRUE;
ELSIF ((menuPick IN class) AND (WindowLarge = TRUE)) THEN
SizeWindow (WindowPter,0,-30);
WindowLarge := FALSE;
END (* IF *);
IntuiMsg := GetMsg (WindowPter^.userPort);
END (* WHILE *);
UNTIL (lauf > 4000000005);
END (* LOOP*);
CloseDown;
END MemMonII.